package model;

/**
 * Vertegenwoordigt de GPS ontvanger.
 * Clients kunnen met deze klasse de huidige
 * positie van de gebruiker opvragen.
 * 
 * Het strategy pattern zorgt er voor dat
 * er gewisseld kan worden tussen de echte gps ontvanger
 * en een simulatie klasse.
 */
public class GpsReceiver extends Observable {
    
    private GpsStrategy gpsStrategy;
    private GpsCoordinate gpsCoordinate;
    
    public GpsReceiver() {
        gpsStrategy = new GpsSimulation(this);
        
        gpsCoordinate = new GpsCoordinate(
            new GpsLatitude(51, 35, 37.68),
            new GpsLongitude(4, 46, 46.66));
    }
    
    public void handleNewCoordinate(GpsCoordinate gpsCoordinate) {
        this.gpsCoordinate = gpsCoordinate;
        notifyObservers();
    }
    
    public GpsCoordinate getGpsCoordinate() {
        return gpsCoordinate;
    }
}
